import regeneratorRuntime from './runtime.js';


var log = require('./log.js')
//const app = getApp();
// 修改 token ,cur_path 放入 storage
function createHeader() {


  let token=wx.getStorageSync('token')
  
  return {
    'content-type': 'application/x-www-form-urlencoded',
    'Access-Token': token?token:'',

  }
}
function getCode(){
  /*app.globalData.is_need_reload = true
  if(app.globalData.cur_path == 'login') return;
  app.globalData.cur_path = 'login'
  wx.navigateTo({
    url: '/pages/login/login',
  })*/

  
  

  wx.navigateTo({
    url: '/pages/login/login',
  })
}

module.exports = {
  get: (url, data = {}) => {
    // 获取应用实例
    return new Promise((resolve, reject) => {
      console.log('发送GET请求:' + url);
      console.log(data);
      const requestTask = wx.request({
        url,
        data,
        header: {'Access-Token': wx.getStorageSync('token')},
        success: res => {
          console.log(`${url} 返回结果`);
          console.log(res);
          if (res.statusCode === 200) {
            if (res.data.code == 0) {
              resolve(res.data);
            } else if(res.data.code==1){
				//resolve(res.data);
             
            }else{
				let access_token=wx.getStorageSync('token')
				log.error('请求 '+ url +' 异常;'+' 请求参数:'+JSON.stringify(data)+';返回数据:'+JSON.stringify(res)+' 用户token:'+access_token)
				log.error('请求 '+ url +' 异常;'+' 请求参数:',data,';返回数据:',res,' 用户token:',access_token)
				wx.hideLoading()
				wx.showModal({
				  title: '提示',
				  content: res.data.msg,
				  showCancel: false,
				  success(res) {
				    if (res.confirm) {
				      // resolve(res.data);
				    } else if (res.cancel) {
				      console.log('用户点击取消')
				    }
				  }
				});
			}
          } else if (res.statusCode === 401) {
            getCode()
          } else {


            let access_token=wx.getStorageSync('token')
            console.log('请求 '+ url +' 异常;'+' 请求参数:'+JSON.stringify(data)+';返回数据:'+JSON.stringify(res)+' 用户token:'+access_token)
            log.error('请求 '+ url +' 异常;'+' 请求参数:'+JSON.stringify(data)+';返回数据:'+JSON.stringify(res)+' 用户token:'+access_token)


            wx.showModal({
              title: '提示',
              content: res.errMsg,
              showCancel: false,
              complete: () => {
                reject(res.errMsg);
              },
              success(res) {
                if (res.confirm) {
                  wx.navigateBack({
                    delta: 1,
                  })
                } else if (res.cancel) {
                  console.log('用户点击取消')
                }
              }
            });
            wx.hideLoading()
          }
        },
        fail: err => {
          wx.showModal({
            title: '提示',
            content: err,
            showCancel: false,
            complete: () => {
              reject(err);
            },
            success(res) {
              if (res.confirm) {
                wx.navigateBack({
                  delta: 1,
                })
              } else if (res.cancel) {
                console.log('用户点击取消')
              }
            }
          });
          wx.hideLoading()
        }
      });
      // 取消请求任务
      // requestTask.abort();
    });
  },
  post: (url, data, method = 'POST') => {
    // 获取应用实例
    return new Promise((resolve, reject) => {
      console.log('发送POST请求:' + url);
      console.log(data);
      const requestTask = wx.request({
        method,
        data,
        url,
        header: createHeader('content-type', 'Access-Token'),
        success: res => {
          console.log(`${url} 返回结果`);
          console.log(res);
          if (res.statusCode === 200) {
            if (res.data.code == 0) {
              resolve(res.data);
            }  else if(res.data.code==1){
			  resolve(res.data);      
            }
			else {	
              console.log('===该请求失败.')
              let msg ="请求失败，请重试"
              if(res.data.msg!=''){
                msg=res.data.msg
              }
              wx.showModal({
                title: '提示',
                content: msg,
                showCancel: false,
                complete: () => {
                  reject(msg);
                },
                success(res) {
                  if (res.confirm) {
                    // wx.navigateBack({
                    //   delta: 1,
                    // })
                  } else if (res.cancel) {
                    console.log('用户点击取消')
                  }
                }
              });
              wx.hideLoading()
            }
          } else if (res.statusCode === 401) {
            getCode()
          } else {
            wx.showModal({
              title: '提示',
              content: res.errMsg,
              showCancel: false,
              complete: () => {
                reject(res.errMsg);
              },
              success(res) {
                if (res.confirm) {
                  // wx.navigateBack({
                  //   delta: 1,
                  // })
                } else if (res.cancel) {
                  console.log('用户点击取消')
                }
              }
            });
            wx.hideLoading()
          }
        },
        fail: err => {
          if (err.errMsg === 'request:fail timeout') {
            // 超时
          }
          wx.showModal({
            title: '提示',
            content: err,
            showCancel: false,
            complete: () => {
              reject(err);
            },
            success(res) {
              if (res.confirm) {
                wx.navigateBack({
                  delta: 1,
                })
              } else if (res.cancel) {
                console.log('用户点击取消')
              }
            }
          });
          wx.hideLoading()
        }
      });
    });
  },
};
